/*
 * Alfil.java
 *
 * Created on 17 de julio de 2007, 12:17 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package aprendizajePiezas;
import java.util.*;
import javax.swing.*;

/**
 *
 * @author Billy
 */
public class Alfil extends Pieza{

    /** Creates a new instance of Alfil */    
    public Alfil(String nombre, String posicion, JLabel laFigura) {        
        super(nombre, posicion, laFigura);        
        System.out.println("::Estoy sobre el Alfil !!!:: ");
    }
  
    public Alfil(){
        super("","",null);
    }
        
    public List<String> CalcularMovimientos(manejadorPiezas adminPiezas){
        char f , c;                           
        movimientosposibles = new ArrayList<String>();              
        for(int i=1; i<=4;i++){
            
            f = posicion.charAt(0);        
            c = posicion.charAt(1);

            switch(i){
                case 1: /*Posicion 1*/ 
                        while(f >'a' && c <'8'){
                            --f; ++c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("1 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                agregarListaxComer(adminPiezas,f,c);
                                break;   
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                
                        }
                        break;
                        
                case 2: /*Posicion 2*/ 
                        while(f <'h' && c <'8'){
                            ++f; ++c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("2 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                agregarListaxComer(adminPiezas,f,c);
                                break;                              
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                    
                        }                    
                        break;
                        
                case 3: /*Posicion 3*/ 
                        while(f <'h' && c >'1'){
                            ++f; --c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("3 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                agregarListaxComer(adminPiezas,f,c);
                                break;                      
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                            
                        }                    
                        break;
                        
                case 4: /*Posicion 4*/ 
                        while(f >'a' && c >'1'){
                            --f; --c;  
                            if(adminPiezas.HayPiezaenCasilla(aString(f,c))== true){
                                //System.out.println("4 casilla:: "+aString(f,c)+ " ColorPieza::: "+adminPiezas.getColorPieza(aString(f,c)));
                                agregarListaxComer(adminPiezas,f,c);
                                break;                              
                            }                                                        
                            else movimientosposibles.add(aString(f,c));                                                            
                        }                    
                        break;                                                
            } //switch   
                                                                                
        }
       return movimientosposibles;          
    }

}



